<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<title>a synchronization scope activity</title>
	</head>
	<body>
        <h1>
            Usage</h1>
        <p>
            First add the CustomWorkflowActivities.SynchronizationService to the workflow engine:</p>
        <pre>	WorkflowRuntime workflowRuntime = new WorkflowRuntime();
		:
		:
	workflowRuntime.AddService( new CustomWorkflowActivities.SynchronizationService( workflowRuntime));
</pre>
        <br />
Then create workflow and insert a RealSynchronizationScope activity. Set the SharingName
        to some unique-within-the-workflow-engine string, and then drag one activity onto
        the RealSynchronizationScope activity. This one activity could be a Sequence activity
        if you need more than one activity to run within the synchronization scope. That
        is all you need to do to ensure that only one instance of that child's activity
        will run within the workflow engine. The RealSynchronizationScope activity uses
        the SharingName string to determine what activities should be synchronized with
        one another.<br />
        <br />
        See the test application for an example. That example also shows that you can nest
        synchronization scopes. Be careful though, since that can lead to deadlocks.<h1>
            Caveats</h1>
        Currently, this RealSynchronizationScope only works for an in memory workflow engine.
        It does not handle persisting to a backing store.<br />
	
	</body>
</html>